Polarized Image and Instrumental Modeling
In this tutorial, we will analyze a simulated simple polarized dataset to demonstrate Comrade's polarized imaging capabilities.
Introduction to Polarized Imaging
The EHT is a polarized interferometer. However, like all VLBI interferometers, it does not directly measure the Stokes parameters (I, Q, U, V). Instead, it measures components related to the electric field at the telescope along two directions using feeds. There are two types of feeds at telescopes: circular, which measure $R/L$ components of the electric field, and linear feeds, which measure $X/Y$ components of the electric field. Most sites in the EHT use circular feeds, meaning they measure the right (R) and left electric field (L) at each telescope. These circular electric field measurements are then correlated, producing coherency matrices,
\[ C_{ij} = \begin{pmatrix} RR^* & RL^*\\ LR^* & LL^* \end{pmatrix}.\]
These coherency matrices are the fundamental object in interferometry and what the telescope observes. For a perfect interferometer, these coherency matrices are related to the usual Fourier transform of the stokes parameters by
\[ \begin{pmatrix} \tilde{I}\\ \tilde{Q} \\ \tilde{U} \\ \tilde{V} \end{pmatrix} =\frac{1}{2} \begin{pmatrix} RR^* + LL^* \\ RL^* + LR^* \\ i(LR^* - RL^*)\\ RR^* - LL^* \end{pmatrix},\]
for circularly polarized measurements.
In this tutorial, we stick to circular feeds but Comrade has the capabilities to model linear (XX,XY, ...) and mixed basis coherencies (e.g., RX, RY, ...).
In reality, the measure coherencies are corrupted by both the atmosphere and the telescope itself. In Comrade we use the RIME formalism [1] to represent these corruptions, namely our measured coherency matrices $V_{ij}$ are given by
\[ V_{ij} = J_iC_{ij}J_j^\dagger\]
where $J$ is known as a Jones matrix and $ij$ denotes the baseline $ij$ with sites $i$ and $j$.
Comrade is highly flexible with how the Jones matrices are formed and provides several convenience functions that parameterize standard Jones matrices. These matrices include:
jonesGwhich builds the set of complex gain Jones matrices
\[ G = \begin{pmatrix} g_a &0\\ 0 &g_b\\ \end{pmatrix}\]
jonesDwhich builds the set of complex d-terms Jones matrices
\[ D = \begin{pmatrix} 1 & d_a\\ d_b &1\\ \end{pmatrix}\]
jonesTis the basis transform matrix $T$. This transformation is special and combines two things using the decomposition $T=FB$. The first, $B$, is the transformation from some reference basis to the observed coherency basis (this allows for mixed basis measurements). The second is the feed rotation, $F$, that transforms from some reference axis to the axis of the telescope as the source moves in the sky. The feed rotation matrixFin terms of the per station feed rotation angle $\varphi$ is
\[ F = \begin{pmatrix} e^{-i\varphi} & 0\\ 0 & e^{i\varphi}\\ \end{pmatrix}\]
In the rest of the tutorial, we are going to solve for all of these instrument model terms on in addition to our image structure to reconstruct a polarized image of a synthetic dataset.
Load the Data
To get started we will load Comrade
using ComradeLoad the Data
using Pyehtim Activating project at `~/work/Comrade.jl/Comrade.jl/examples`For reproducibility we use a stable random number genreator
using StableRNGs
rng = StableRNG(123)StableRNGs.LehmerRNG(state=0x000000000000000000000000000000f7)Now we will load some synthetic polarized data.
obs = Pyehtim.load_uvfits_and_array(joinpath(dirname(pathof(Comrade)), "..", "examples", "PolarizedExamples/polarized_gaussian_all_corruptions.uvfits"),
joinpath(dirname(pathof(Comrade)), "..", "examples", "PolarizedExamples/array.txt"), polrep="circ")Python: <ehtim.obsdata.Obsdata object at 0x7fdfb236b310>Notice that, unlike other non-polarized tutorials, we need to include a second argument. This is the array file of the observation and is required to determine the feed rotation of the array.
Now we scan average the data since the data to boost the SNR and reduce the total data volume.
obs = scan_average(obs)Python: <ehtim.obsdata.Obsdata object at 0x7fdffb12bfd0>Now we extract our observed/corrupted coherency matrices.
dvis = extract_table(obs, Coherencies())EHTObservation{Float64,Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, ...}
source: 17.761122472222223:-28.992189444444445
mjd: 51544
frequency: 2.3e11
bandwidth: 1.0e9
stations: [:AA, :AP, :AZ, :JC, :LM, :PV, :SM]
nsamples: 315
##Building the Model/Posterior
To build the model, we first break it down into two parts:
- The image or sky model. In Comrade, all polarized image models are written in terms of the Stokes parameters. The reason for using Stokes parameters is that it is usually what physical models consider and is the often easiest to reason about since they are additive. In this tutorial, we will use a polarized image model based on Pesce (2021)[2]. This model parameterizes the polarized image in terms of the
Poincare sphere, and allows us to easily incorporate physical restrictions such as $I^2 ≥ Q^2 + U^2 + V^2$. - The instrument model. The instrument model specifies the model that describes the impact of instrumental and atmospheric effects. We will be using the $J = GDT$ decomposition we described above. However, to parameterize the R/L complex gains, we will be using a gain product and ratio decomposition. The reason for this decomposition is that in realistic measurements, the gain ratios and products have different temporal characteristics. Namely, many of the EHT observations tend to demonstrate constant R/L gain ratios across an nights observations, compared to the gain products, which vary every scan. Additionally, the gain ratios tend to be smaller (i.e., closer to unity) than the gain products. Using this apriori knowledge, we can build this into our model and reduce the total number of parameters we need to model.
function sky(θ, metadata)
(;c, f, p, angparams) = θ
(;K, grid, cache) = metadata
# Construct the image model
# produce Stokes images from parameters
imgI = f*K(c)
# Converts from poincare sphere parameterization of polzarization to Stokes Parameters
pimg = PoincareSphere2Map(imgI, p, angparams, grid)
m = ContinuousImage(pimg, cache)
return m
endsky (generic function with 1 method)If you want to add a geometric polarized model please see the PolarizedModel docstring. For instance to create a stokes I only Gaussian component to the above model we can do pg = PolarizedModel(modify(Gaussian(), Stretch(1e-10)), ZeroModel(), ZeroModel(), ZeroModel()).
function instrument(θ, metadata)
(; lgp, gpp, lgr, gpr, dRx, dRy, dLx, dLy) = θ
(; tcache, scancache, phasecache, trackcache) = metadata
# Now construct the basis transformation cache
jT = jonesT(tcache)
# Gain product parameters
gPa = exp.(lgp)
gRa = exp.(lgp .+ lgr)
Gp = jonesG(gPa, gRa, scancache)
# Gain ratio
gPp = exp.(1im.*(gpp))
gRp = exp.(1im.*(gpp.+gpr))
Gr = jonesG(gPp, gRp, phasecache)
##D-terms
D = jonesD(complex.(dRx, dRy), complex.(dLx, dLy), trackcache)
# sandwich all the jones matrices together
J = Gp*Gr*D*jT
# form the complete Jones or RIME model. We use tcache here
# to set the reference basis of the model.
return JonesModel(J, tcache)
endinstrument (generic function with 1 method)Now, we define the model metadata required to build the model. We specify our image grid and cache model needed to define the polarimetric image model.
fovx = μas2rad(50.0)
fovy = μas2rad(50.0)
nx = 6
ny = floor(Int, fovy/fovx*nx)
grid = imagepixels(fovx, fovy, nx, ny) # image grid
buffer = IntensityMap(zeros(nx, ny), grid) # buffer to store temporary image
pulse = BSplinePulse{3}() # pulse we will be using
cache = create_cache(NFFTAlg(dvis), buffer, pulse) # cache to define the NFFT transformVLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}(VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}(NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}(1, 4, 2.0, :kaiser_bessel, AbstractNFFTs.POLYNOMIAL, true, false, true, 0x00000000), [59827.55078125 60351.01953125 … 57731.1796875 59075.01171875; -91918.53125 -94468.7265625 … -87413.2578125 -89891.890625]), NFFTPlan with 315 sampling points for an input array of size(6, 6) and an output array of size(315,) with dims 1:2, ComplexF64[0.9999999998625229 - 4.073113194802683e-6im, 0.9999999998556613 - 4.330353284776288e-6im, 0.999999999848886 - 4.647785062942295e-6im, 0.9999999998421939 - 5.022980613439945e-6im, 0.9999999998355636 - 5.453067290874904e-6im, 0.9999999998289592 - 5.934756476520983e-6im, 0.9999999676482585 - 7.961715452053948e-5im, 0.27309831373929383 - 0.5602181272057013im, 0.27318080222812635 - 0.5602741916648575im, 0.9999999660126188 - 8.078898742751225e-5im … 0.8626296582058255 + 0.31333693399431im, 0.799618552884296 - 0.26698271796155876im, 0.9999999999078099 - 4.019407021873448e-6im, 0.7996150212461651 + 0.26697800124674226im, 0.999999999901871 - 3.839833962147681e-6im, 0.9999999998955054 - 3.7242062665396272e-6im, 0.9999999998888406 - 3.6734094277433153e-6im, 0.9999999998819885 - 3.687833141870991e-6im, 0.9999999998750453 - 3.7673658546908245e-6im, 0.9999999998680867 - 3.911399223796198e-6im], BSplinePulse{3}(), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0])Finally we compute a center projector that forces the centroid to live at the image origin
using VLBIImagePriors
K = CenterImage(grid)
skymeta = (;K, cache, grid)(K = VLBIImagePriors.CenterImage{Matrix{Float64}, Tuple{Int64, Int64}}([0.8809523809523814 -0.09523809523809519 … 0.09523809523809518 0.11904761904761897; -0.09523809523809519 0.9190476190476192 … 0.08095238095238096 0.0952380952380952; … ; 0.09523809523809518 0.08095238095238096 … 0.9190476190476189 -0.09523809523809526; 0.11904761904761897 0.0952380952380952 … -0.09523809523809526 0.880952380952381], (6, 6)), cache = VLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}(VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}(NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}(1, 4, 2.0, :kaiser_bessel, AbstractNFFTs.POLYNOMIAL, true, false, true, 0x00000000), [59827.55078125 60351.01953125 … 57731.1796875 59075.01171875; -91918.53125 -94468.7265625 … -87413.2578125 -89891.890625]), NFFTPlan with 315 sampling points for an input array of size(6, 6) and an output array of size(315,) with dims 1:2, ComplexF64[0.9999999998625229 - 4.073113194802683e-6im, 0.9999999998556613 - 4.330353284776288e-6im, 0.999999999848886 - 4.647785062942295e-6im, 0.9999999998421939 - 5.022980613439945e-6im, 0.9999999998355636 - 5.453067290874904e-6im, 0.9999999998289592 - 5.934756476520983e-6im, 0.9999999676482585 - 7.961715452053948e-5im, 0.27309831373929383 - 0.5602181272057013im, 0.27318080222812635 - 0.5602741916648575im, 0.9999999660126188 - 8.078898742751225e-5im … 0.8626296582058255 + 0.31333693399431im, 0.799618552884296 - 0.26698271796155876im, 0.9999999999078099 - 4.019407021873448e-6im, 0.7996150212461651 + 0.26697800124674226im, 0.999999999901871 - 3.839833962147681e-6im, 0.9999999998955054 - 3.7242062665396272e-6im, 0.9999999998888406 - 3.6734094277433153e-6im, 0.9999999998819885 - 3.687833141870991e-6im, 0.9999999998750453 - 3.7673658546908245e-6im, 0.9999999998680867 - 3.911399223796198e-6im], BSplinePulse{3}(), [0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0; … ; 0.0 0.0 … 0.0 0.0; 0.0 0.0 … 0.0 0.0]), grid = GriddedKeys{(:X, :Y)}
X: LinRange{Float64}(-1.0100285023115333e-10, 1.0100285023115333e-10, 6)
Y: LinRange{Float64}(-1.0100285023115333e-10, 1.0100285023115333e-10, 6)
)To define the instrument models, $T$, $G$, $D$, we need to build some Jones caches (see JonesCache) that map from a flat vector of gain/dterms to the specific sites for each baseline.
First, we will define our deterministic transform cache. Note that this dataset has need been pre-corrected for feed rotation, so we need to add those into the tcache.
tcache = ResponseCache(dvis; add_fr=true, ehtim_fr_convention=false)ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}(StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}[[0.7478621394217326 - 0.6638540656044437im 0.0 + 0.0im; 0.0 + 0.0im 0.7478621394217326 + 0.6638540656044437im], [0.6986903559889311 - 0.7154242003511349im 0.0 + 0.0im; 0.0 + 0.0im 0.6986903559889311 + 0.7154242003511349im], [0.6501178560836025 - 0.7598333851583914im 0.0 + 0.0im; 0.0 + 0.0im 0.6501178560836025 + 0.7598333851583914im], [0.6026809304860021 - 0.797982265484971im 0.0 + 0.0im; 0.0 + 0.0im 0.6026809304860021 + 0.797982265484971im], [0.5566871572570636 - 0.8307222212900347im 0.0 + 0.0im; 0.0 + 0.0im 0.5566871572570636 + 0.8307222212900347im], [0.5122745076442827 - 0.8588217677829363im 0.0 + 0.0im; 0.0 + 0.0im 0.5122745076442827 + 0.8588217677829363im], [-0.33813106399458925 + 0.9410990296254093im 0.0 + 0.0im; 0.0 + 0.0im -0.33813106399458925 - 0.9410990296254093im], [-0.33813106399458925 + 0.9410990296254093im 0.0 + 0.0im; 0.0 + 0.0im -0.33813106399458925 - 0.9410990296254093im], [-0.13759195658923065 + 0.9904889971533997im 0.0 + 0.0im; 0.0 + 0.0im -0.13759195658923065 - 0.9904889971533997im], [-0.3037162170116636 + 0.9527625409954592im 0.0 + 0.0im; 0.0 + 0.0im -0.3037162170116636 - 0.9527625409954592im] … [0.5922345549348089 - 0.8057656184903702im 0.0 + 0.0im; 0.0 + 0.0im 0.5922345549348089 + 0.8057656184903702im], [0.9962544755535179 - 0.08646976315212812im 0.0 + 0.0im; 0.0 + 0.0im 0.9962544755535179 + 0.08646976315212812im], [0.9962544755535179 - 0.08646976315212812im 0.0 + 0.0im; 0.0 + 0.0im 0.9962544755535179 + 0.08646976315212812im], [0.6951608716251709 - 0.7188542011850056im 0.0 + 0.0im; 0.0 + 0.0im 0.6951608716251709 + 0.7188542011850056im], [0.9811288230995521 - 0.19335519771469242im 0.0 + 0.0im; 0.0 + 0.0im 0.9811288230995521 + 0.19335519771469242im], [0.9555317155822731 - 0.2948883526292586im 0.0 + 0.0im; 0.0 + 0.0im 0.9555317155822731 + 0.2948883526292586im], [0.9212728138493554 - 0.38891696088251393im 0.0 + 0.0im; 0.0 + 0.0im 0.9212728138493554 + 0.38891696088251393im], [0.880457707962253 - 0.47412469297628457im 0.0 + 0.0im; 0.0 + 0.0im 0.880457707962253 + 0.47412469297628457im], [0.8351706623098257 - 0.5499908770306714im 0.0 + 0.0im; 0.0 + 0.0im 0.8351706623098257 + 0.5499908770306714im], [0.7872511092491687 - 0.6166325412966408im 0.0 + 0.0im; 0.0 + 0.0im 0.7872511092491687 + 0.6166325412966408im]], StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}[[0.5359655747144977 - 0.8442398372032429im 0.0 + 0.0im; 0.0 + 0.0im 0.5359655747144977 + 0.8442398372032429im], [0.4273401885516062 - 0.9040909043059098im 0.0 + 0.0im; 0.0 + 0.0im 0.4273401885516062 + 0.9040909043059098im], [0.31382959047743225 - 0.9494793247568728im 0.0 + 0.0im; 0.0 + 0.0im 0.31382959047743225 + 0.9494793247568728im], [0.19738268777901155 - 0.9803265142620254im 0.0 + 0.0im; 0.0 + 0.0im 0.19738268777901155 + 0.9803265142620254im], [0.07977737741150931 - 0.996812705603887im 0.0 + 0.0im; 0.0 + 0.0im 0.07977737741150931 + 0.996812705603887im], [-0.037375462953861724 - 0.9993012932889582im -0.0 + 0.0im; -0.0 + 0.0im -0.037375462953861724 + 0.9993012932889582im], [-0.13759195658923065 + 0.9904889971533997im 0.0 + 0.0im; 0.0 + 0.0im -0.13759195658923065 - 0.9904889971533997im], [0.755819778047619 + 0.6547797057881741im 0.0 + 0.0im; 0.0 + 0.0im 0.755819778047619 - 0.6547797057881741im], [0.755819778047619 + 0.6547797057881741im 0.0 + 0.0im; 0.0 + 0.0im 0.755819778047619 - 0.6547797057881741im], [-0.029176930515361358 + 0.9995742627367422im 0.0 + 0.0im; 0.0 + 0.0im -0.029176930515361358 - 0.9995742627367422im] … [0.9882178952194864 - 0.15305355784158767im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158767im], [0.6951608716251709 - 0.7188542011850056im 0.0 + 0.0im; 0.0 + 0.0im 0.6951608716251709 + 0.7188542011850056im], [0.9882178952194864 - 0.15305355784158767im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158767im], [0.9882178952194864 - 0.15305355784158767im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158767im], [0.9631304113729374 - 0.2690349618332093im 0.0 + 0.0im; 0.0 + 0.0im 0.9631304113729374 + 0.2690349618332093im], [0.9226606490274738 - 0.3856129234558936im 0.0 + 0.0im; 0.0 + 0.0im 0.9226606490274738 + 0.3856129234558936im], [0.8667200798347219 - 0.49879485082676367im 0.0 + 0.0im; 0.0 + 0.0im 0.8667200798347219 + 0.49879485082676367im], [0.7962012235336293 - 0.6050319096077095im 0.0 + 0.0im; 0.0 + 0.0im 0.7962012235336293 + 0.6050319096077095im], [0.7127118166097025 - 0.7014569598092941im 0.0 + 0.0im; 0.0 + 0.0im 0.7127118166097025 + 0.7014569598092941im], [0.6182781975747923 - 0.7859593312657253im 0.0 + 0.0im; 0.0 + 0.0im 0.6182781975747923 + 0.7859593312657253im]], CirBasis())Next we define our cache that maps quantities e.g., gain products, that change from scan-to-scan.
scancache = jonescache(dvis, ScanSeg())JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))In addition we will assign a reference station. This is necessary for gain phases due to a trivial degeneracy being present. To do this we will select ALMA AA as the reference station as is standard in EHT analyses.
phase_segs = station_tuple(dvis, ScanSeg(); AA=FixedSeg(1.0 + 0.0im))
phasecache = jonescache(dvis, phase_segs)JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))Finally, we define our cache that maps quantities, e.g., gain ratios and d-terms, that are constant across a observation night, and we collect everything together.
trackcache = jonescache(dvis, TrackSeg())
instrumentmeta = (;tcache, scancache, trackcache, phasecache)(tcache = ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}(StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}[[0.7478621394217326 - 0.6638540656044437im 0.0 + 0.0im; 0.0 + 0.0im 0.7478621394217326 + 0.6638540656044437im], [0.6986903559889311 - 0.7154242003511349im 0.0 + 0.0im; 0.0 + 0.0im 0.6986903559889311 + 0.7154242003511349im], [0.6501178560836025 - 0.7598333851583914im 0.0 + 0.0im; 0.0 + 0.0im 0.6501178560836025 + 0.7598333851583914im], [0.6026809304860021 - 0.797982265484971im 0.0 + 0.0im; 0.0 + 0.0im 0.6026809304860021 + 0.797982265484971im], [0.5566871572570636 - 0.8307222212900347im 0.0 + 0.0im; 0.0 + 0.0im 0.5566871572570636 + 0.8307222212900347im], [0.5122745076442827 - 0.8588217677829363im 0.0 + 0.0im; 0.0 + 0.0im 0.5122745076442827 + 0.8588217677829363im], [-0.33813106399458925 + 0.9410990296254093im 0.0 + 0.0im; 0.0 + 0.0im -0.33813106399458925 - 0.9410990296254093im], [-0.33813106399458925 + 0.9410990296254093im 0.0 + 0.0im; 0.0 + 0.0im -0.33813106399458925 - 0.9410990296254093im], [-0.13759195658923065 + 0.9904889971533997im 0.0 + 0.0im; 0.0 + 0.0im -0.13759195658923065 - 0.9904889971533997im], [-0.3037162170116636 + 0.9527625409954592im 0.0 + 0.0im; 0.0 + 0.0im -0.3037162170116636 - 0.9527625409954592im] … [0.5922345549348089 - 0.8057656184903702im 0.0 + 0.0im; 0.0 + 0.0im 0.5922345549348089 + 0.8057656184903702im], [0.9962544755535179 - 0.08646976315212812im 0.0 + 0.0im; 0.0 + 0.0im 0.9962544755535179 + 0.08646976315212812im], [0.9962544755535179 - 0.08646976315212812im 0.0 + 0.0im; 0.0 + 0.0im 0.9962544755535179 + 0.08646976315212812im], [0.6951608716251709 - 0.7188542011850056im 0.0 + 0.0im; 0.0 + 0.0im 0.6951608716251709 + 0.7188542011850056im], [0.9811288230995521 - 0.19335519771469242im 0.0 + 0.0im; 0.0 + 0.0im 0.9811288230995521 + 0.19335519771469242im], [0.9555317155822731 - 0.2948883526292586im 0.0 + 0.0im; 0.0 + 0.0im 0.9555317155822731 + 0.2948883526292586im], [0.9212728138493554 - 0.38891696088251393im 0.0 + 0.0im; 0.0 + 0.0im 0.9212728138493554 + 0.38891696088251393im], [0.880457707962253 - 0.47412469297628457im 0.0 + 0.0im; 0.0 + 0.0im 0.880457707962253 + 0.47412469297628457im], [0.8351706623098257 - 0.5499908770306714im 0.0 + 0.0im; 0.0 + 0.0im 0.8351706623098257 + 0.5499908770306714im], [0.7872511092491687 - 0.6166325412966408im 0.0 + 0.0im; 0.0 + 0.0im 0.7872511092491687 + 0.6166325412966408im]], StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}[[0.5359655747144977 - 0.8442398372032429im 0.0 + 0.0im; 0.0 + 0.0im 0.5359655747144977 + 0.8442398372032429im], [0.4273401885516062 - 0.9040909043059098im 0.0 + 0.0im; 0.0 + 0.0im 0.4273401885516062 + 0.9040909043059098im], [0.31382959047743225 - 0.9494793247568728im 0.0 + 0.0im; 0.0 + 0.0im 0.31382959047743225 + 0.9494793247568728im], [0.19738268777901155 - 0.9803265142620254im 0.0 + 0.0im; 0.0 + 0.0im 0.19738268777901155 + 0.9803265142620254im], [0.07977737741150931 - 0.996812705603887im 0.0 + 0.0im; 0.0 + 0.0im 0.07977737741150931 + 0.996812705603887im], [-0.037375462953861724 - 0.9993012932889582im -0.0 + 0.0im; -0.0 + 0.0im -0.037375462953861724 + 0.9993012932889582im], [-0.13759195658923065 + 0.9904889971533997im 0.0 + 0.0im; 0.0 + 0.0im -0.13759195658923065 - 0.9904889971533997im], [0.755819778047619 + 0.6547797057881741im 0.0 + 0.0im; 0.0 + 0.0im 0.755819778047619 - 0.6547797057881741im], [0.755819778047619 + 0.6547797057881741im 0.0 + 0.0im; 0.0 + 0.0im 0.755819778047619 - 0.6547797057881741im], [-0.029176930515361358 + 0.9995742627367422im 0.0 + 0.0im; 0.0 + 0.0im -0.029176930515361358 - 0.9995742627367422im] … [0.9882178952194864 - 0.15305355784158767im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158767im], [0.6951608716251709 - 0.7188542011850056im 0.0 + 0.0im; 0.0 + 0.0im 0.6951608716251709 + 0.7188542011850056im], [0.9882178952194864 - 0.15305355784158767im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158767im], [0.9882178952194864 - 0.15305355784158767im 0.0 + 0.0im; 0.0 + 0.0im 0.9882178952194864 + 0.15305355784158767im], [0.9631304113729374 - 0.2690349618332093im 0.0 + 0.0im; 0.0 + 0.0im 0.9631304113729374 + 0.2690349618332093im], [0.9226606490274738 - 0.3856129234558936im 0.0 + 0.0im; 0.0 + 0.0im 0.9226606490274738 + 0.3856129234558936im], [0.8667200798347219 - 0.49879485082676367im 0.0 + 0.0im; 0.0 + 0.0im 0.8667200798347219 + 0.49879485082676367im], [0.7962012235336293 - 0.6050319096077095im 0.0 + 0.0im; 0.0 + 0.0im 0.7962012235336293 + 0.6050319096077095im], [0.7127118166097025 - 0.7014569598092941im 0.0 + 0.0im; 0.0 + 0.0im 0.7127118166097025 + 0.7014569598092941im], [0.6182781975747923 - 0.7859593312657253im 0.0 + 0.0im; 0.0 + 0.0im 0.6182781975747923 + 0.7859593312657253im]], CirBasis()), scancache = JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49)), trackcache = JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49)), phasecache = JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49)))Moving onto our prior, we first focus on the instrument model priors. Each station gain requires its own prior on both the amplitudes and phases. For the amplitudes, we assume that the gains are apriori well calibrated around unit gains (or 0 log gain amplitudes) which corresponds to no instrument corruption. The gain dispersion is then set to 10% for all stations except LMT, representing that we expect 10% deviations from scan-to-scan. For LMT, we let the prior expand to 100% due to the known pointing issues LMT had in 2017.
using Distributions
using DistributionsAD
distamp = station_tuple(dvis, Normal(0.0, 0.1))(AA = Distributions.Normal{Float64}(μ=0.0, σ=0.1), AP = Distributions.Normal{Float64}(μ=0.0, σ=0.1), AZ = Distributions.Normal{Float64}(μ=0.0, σ=0.1), JC = Distributions.Normal{Float64}(μ=0.0, σ=0.1), LM = Distributions.Normal{Float64}(μ=0.0, σ=0.1), PV = Distributions.Normal{Float64}(μ=0.0, σ=0.1), SM = Distributions.Normal{Float64}(μ=0.0, σ=0.1))For the phases, we assume that the atmosphere effectively scrambles the gains. Since the gain phases are periodic, we also use broad von Mises priors for all stations. Notice that we don't assign a prior for AA since we have already fixed it.
distphase = station_tuple(dvis, DiagonalVonMises(0.0, inv(π^2)); reference=:AA)(AP = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), AZ = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), JC = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), LM = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), PV = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688), SM = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=0.10132118364233778, lnorm=-1.739120733481688))However, we can now also use a little additional information about the phase offsets where in most cases, they are much better behaved than the products
distphase_ratio = station_tuple(dvis, DiagonalVonMises(0.0, inv(0.1)); reference=:AA)(AP = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), AZ = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), JC = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), LM = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), PV = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588), SM = VLBIImagePriors.DiagonalVonMises{Float64, Float64, Float64}(μ=0.0, κ=10.0, lnorm=0.2191508504719588))Moving onto the d-terms, here we directly parameterize the real and complex components of the d-terms since they are expected to be complex numbers near the origin. To help enforce this smallness, a weakly informative Normal prior is used.
distD = station_tuple(dvis, Normal(0.0, 0.1))(AA = Distributions.Normal{Float64}(μ=0.0, σ=0.1), AP = Distributions.Normal{Float64}(μ=0.0, σ=0.1), AZ = Distributions.Normal{Float64}(μ=0.0, σ=0.1), JC = Distributions.Normal{Float64}(μ=0.0, σ=0.1), LM = Distributions.Normal{Float64}(μ=0.0, σ=0.1), PV = Distributions.Normal{Float64}(μ=0.0, σ=0.1), SM = Distributions.Normal{Float64}(μ=0.0, σ=0.1))Our image priors are:
- We use a Dirichlet prior,
ImageDirichlet, with unit concentration for our stokes I image pixels,c. - For the total polarization fraction,
p, we assume an uncorrelated uniform priorImageUniformfor each pixel. - To specify the orientation of the polarization,
angparams, on the Poincare sphere, we use a uniform spherical distribution,ImageSphericalUniform.
For all the calibration parameters, we use a helper function CalPrior which builds the prior given the named tuple of station priors and a JonesCache that specifies the segmentation scheme. For the gain products, we use the scancache, while for every other quantity, we use the trackcache.
prior = NamedDist(
c = ImageDirichlet(2.0, nx, ny),
f = Uniform(0.7, 1.2),
p = ImageUniform(nx, ny),
angparams = ImageSphericalUniform(nx, ny),
dRx = CalPrior(distD, trackcache),
dRy = CalPrior(distD, trackcache),
dLx = CalPrior(distD, trackcache),
dLy = CalPrior(distD, trackcache),
lgp = CalPrior(distamp, scancache),
gpp = CalPrior(distphase, phasecache),
lgr = CalPrior(distamp, scancache),
gpr = CalPrior(distphase,phasecache),
)VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}(
dists: (VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}(
α: Fill(2.0, 6, 6)
α0: 72.0
lmnB: -234.70172344281826
)
, Distributions.Uniform{Float64}(a=0.7, b=1.2), VLBIImagePriors.ImageUniform{Float64}(a=0.0, b=1.0, nx=6, ny=6), VLBIImagePriors.ImageSphericalUniform{Float64}(nx=6, ny=6), CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
)
)
Putting it all together, we form our likelihood and posterior objects for optimization and sampling.
lklhd = RadioLikelihood(sky, instrument, dvis; skymeta, instrumentmeta)
post = Posterior(lklhd, prior)Posterior{RadioLikelihood{Comrade.ModelMetadata{typeof(Main.sky), NamedTuple{(:K, :cache, :grid), Tuple{VLBIImagePriors.CenterImage{Matrix{Float64}, Tuple{Int64, Int64}}, VLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}}, Comrade.ModelMetadata{typeof(Main.instrument), NamedTuple{(:tcache, :scancache, :trackcache, :phasecache), Tuple{ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}, Tuple{Comrade.EHTObservation{Float64, Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, StructArrays.StructVector{Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, NamedTuple{(:measurement, :error, :U, :V, :T, :F, :baseline, :polbasis), Tuple{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, Vector{Tuple{CirBasis, CirBasis}}}}, Int64}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, Int64}}, Tuple{Comrade.ConditionedLikelihood{Comrade.var"#29#31"{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}}}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, NamedTuple{(:U, :V, :T, :F), NTuple{4, Vector{Float64}}}}, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}}(RadioLikelihood
Number of data products: 1
, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}(
dists: (VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}(
α: Fill(2.0, 6, 6)
α0: 72.0
lmnB: -234.70172344281826
)
, Distributions.Uniform{Float64}(a=0.7, b=1.2), VLBIImagePriors.ImageUniform{Float64}(a=0.0, b=1.0, nx=6, ny=6), VLBIImagePriors.ImageSphericalUniform{Float64}(nx=6, ny=6), CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
)
)
)Reconstructing the Image and Instrument Effects
To sample from this posterior, it is convenient to move from our constrained parameter space to an unconstrained one (i.e., the support of the transformed posterior is (-∞, ∞)). This transformation is done using the asflat function.
tpost = asflat(post)Comrade.TransformedPosterior{Posterior{RadioLikelihood{Comrade.ModelMetadata{typeof(Main.sky), NamedTuple{(:K, :cache, :grid), Tuple{VLBIImagePriors.CenterImage{Matrix{Float64}, Tuple{Int64, Int64}}, VLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}}, Comrade.ModelMetadata{typeof(Main.instrument), NamedTuple{(:tcache, :scancache, :trackcache, :phasecache), Tuple{ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}, Tuple{Comrade.EHTObservation{Float64, Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, StructArrays.StructVector{Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, NamedTuple{(:measurement, :error, :U, :V, :T, :F, :baseline, :polbasis), Tuple{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, Vector{Tuple{CirBasis, CirBasis}}}}, Int64}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, Int64}}, Tuple{Comrade.ConditionedLikelihood{Comrade.var"#29#31"{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}}}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, NamedTuple{(:U, :V, :T, :F), NTuple{4, Vector{Float64}}}}, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}}, TransformVariables.TransformTuple{NamedTuple{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageSimplex, TransformVariables.ScaledShiftedLogistic{Float64}, TransformVariables.ArrayTransformation{TransformVariables.ScaledShiftedLogistic{Float64}, 2}, TransformVariables.ArrayTransformation{VLBIImagePriors.SphericalUnitVector{2}, 2}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}}}}}(Posterior{RadioLikelihood{Comrade.ModelMetadata{typeof(Main.sky), NamedTuple{(:K, :cache, :grid), Tuple{VLBIImagePriors.CenterImage{Matrix{Float64}, Tuple{Int64, Int64}}, VLBISkyModels.NUFTCache{VLBISkyModels.ObservedNUFT{NFFTAlg{Float64, AbstractNFFTs.PrecomputeFlags, UInt32}, Matrix{Float64}}, NFFT.NFFTPlan{Float64, 2, 1}, Vector{ComplexF64}, BSplinePulse{3}, KeyedArray{Float64, 2, NamedDimsArray{(:X, :Y), Float64, 2, Matrix{Float64}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}, GriddedKeys{(:X, :Y), Tuple{LinRange{Float64, Int64}, LinRange{Float64, Int64}}, ComradeBase.NoHeader, Float64}}}}, Comrade.ModelMetadata{typeof(Main.instrument), NamedTuple{(:tcache, :scancache, :trackcache, :phasecache), Tuple{ResponseCache{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, CirBasis}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}, Tuple{Comrade.EHTObservation{Float64, Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, StructArrays.StructVector{Comrade.EHTCoherencyDatum{Float64, CirBasis, CirBasis, StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, StaticArraysCore.SMatrix{2, 2, Float64, 4}}, NamedTuple{(:measurement, :error, :U, :V, :T, :F, :baseline, :polbasis), Tuple{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, Vector{Tuple{CirBasis, CirBasis}}}}, Int64}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, Int64}}, Tuple{Comrade.ConditionedLikelihood{Comrade.var"#29#31"{StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, ComplexF64, 4}, NTuple{4, Vector{ComplexF64}}, Int64}}}, Comrade.EHTArrayConfiguration{Float64, TypedTables.Table{NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Symbol, Vararg{Float64, 8}}}, 1, NamedTuple{(:sites, :X, :Y, :Z, :SEFD1, :SEFD2, :fr_parallactic, :fr_elevation, :fr_offset), Tuple{Vector{Symbol}, Vararg{Vector{Float64}, 8}}}}, TypedTables.Table{NamedTuple{(:start, :stop), Tuple{Float64, Float64}}, 1, NamedTuple{(:start, :stop), Tuple{Vector{Float64}, Vector{Float64}}}}, StructArrays.StructVector{Comrade.ArrayBaselineDatum, NamedTuple{(:U, :V, :T, :F, :baseline, :error, :elevation, :parallactic), Tuple{Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Float64}, Vector{Tuple{Symbol, Symbol}}, StructArrays.StructVector{StaticArraysCore.SMatrix{2, 2, Float64, 4}, NTuple{4, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}, StructArrays.StructVector{Tuple{Float64, Float64}, Tuple{Vector{Float64}, Vector{Float64}}, Int64}}}, Int64}}, NamedTuple{(:U, :V, :T, :F), NTuple{4, Vector{Float64}}}}, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}}(RadioLikelihood
Number of data products: 1
, VLBIImagePriors.NamedDist{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}, Distributions.Uniform{Float64}, VLBIImagePriors.ImageUniform{Float64}, VLBIImagePriors.ImageSphericalUniform{Float64}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}}}(
dists: (VLBIImagePriors.ImageDirichlet{Float64, FillArrays.Fill{Float64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, Float64}(
α: Fill(2.0, 6, 6)
α0: 72.0
lmnB: -234.70172344281826
)
, Distributions.Uniform{Float64}(a=0.7, b=1.2), VLBIImagePriors.ImageUniform{Float64}(a=0.0, b=1.0, nx=6, ny=6), VLBIImagePriors.ImageSphericalUniform{Float64}(nx=6, ny=6), CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 7
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, TrackSeg}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 121, 122, 136, 137 … 270, 283, 284, 285, 298, 299, 300, 304, 305, 306], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), sparse([111, 115, 118, 126, 130, 133, 141, 145, 148, 156 … 230, 234, 245, 249, 260, 264, 275, 279, 290, 294], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 7), (AA = TrackSeg(), AP = TrackSeg(), AZ = TrackSeg(), JC = TrackSeg(), LM = TrackSeg(), PV = TrackSeg(), SM = TrackSeg()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :AA, :AP, :PV, :LM, :AZ], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [(0.0, :JC), (0.0, :SM), (0.0, :AA), (0.0, :AP), (0.0, :PV), (0.0, :LM), (0.0, :AZ)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{Distributions.DiagNormal, JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: DiagNormal(
dim: 186
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Σ: [0.010000000000000002 0.0 … 0.0 0.0; 0.0 0.010000000000000002 … 0.0 0.0; … ; 0.0 0.0 … 0.010000000000000002 0.0; 0.0 0.0 … 0.0 0.010000000000000002]
)
jcache: JonesCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), NTuple{7, ScanSeg{false}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 13, 14, 16, 16, 17, 19, 19, 20, 22, 22, 23, 25, 25, 26, 28, 28, 29, 31, 31, 32, 34, 34, 35, 37, 37, 38, 40, 40, 41, 43, 43, 44, 46, 46, 46, 47, 47, 48, 50, 50, 50, 51, 51, 52, 54, 54, 54, 55, 55, 56, 58, 58, 58, 59, 59, 60, 62, 62, 63, 65, 65, 65, 66, 66, 67, 69, 69, 69, 70, 70, 71, 73, 73, 73, 74, 74, 75, 77, 77, 77, 78, 78, 79, 81, 81, 81, 82, 82, 83, 85, 85, 85, 86, 86, 87, 89, 89, 89, 90, 90, 91, 93, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 96, 96, 97, 99, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 108, 108, 109, 111, 111, 111, 111, 111, 112, 112, 112, 112, 113, 113, 113, 114, 114, 115, 117, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 120, 120, 121, 123, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 126, 126, 127, 129, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 135, 135, 136, 136, 136, 136, 137, 137, 137, 138, 138, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 144, 144, 145, 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 150, 150, 151, 153, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 156, 156, 157, 159, 159, 159, 159, 159, 160, 160, 160, 160, 161, 161, 161, 162, 162, 163, 165, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 168, 168, 169, 171, 171, 171, 172, 172, 173, 175, 177, 179, 181, 183, 185], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 14, 15, 15, 17, 18, 18, 20, 21, 21, 23, 24, 24, 26, 27, 27, 29, 30, 30, 32, 33, 33, 35, 36, 36, 38, 39, 39, 41, 42, 42, 44, 45, 45, 47, 48, 48, 49, 49, 49, 51, 52, 52, 53, 53, 53, 55, 56, 56, 57, 57, 57, 59, 60, 60, 61, 61, 61, 63, 64, 64, 66, 67, 67, 68, 68, 68, 70, 71, 71, 72, 72, 72, 74, 75, 75, 76, 76, 76, 78, 79, 79, 80, 80, 80, 82, 83, 83, 84, 84, 84, 86, 87, 87, 88, 88, 88, 90, 91, 91, 92, 92, 92, 94, 95, 95, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 106, 107, 107, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 110, 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 116, 118, 119, 119, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 122, 124, 125, 125, 126, 126, 126, 127, 127, 127, 127, 128, 128, 128, 128, 128, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 140, 142, 143, 143, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 146, 148, 149, 149, 150, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 152, 154, 155, 155, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 158, 160, 161, 161, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 164, 166, 167, 167, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 170, 172, 173, 173, 174, 174, 174, 176, 178, 180, 182, 184, 186], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 186), (AA = ScanSeg{false}(), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
, CalPrior{VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}, JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}}(
dists: VLBIImagePriors.DiagonalVonMises{Vector{Float64}, Vector{Float64}, Float64}(
μ: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
κ: [0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778 … 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778, 0.10132118364233778]
lnorm: -260.8681100222532
)
jcache: JonesCache{Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}, SparseArrays.SparseMatrixCSC{Float64, Int64}, NamedTuple{(:AA, :AP, :AZ, :JC, :LM, :PV, :SM), Tuple{FixedSeg{ComplexF64}, Vararg{ScanSeg{false}, 6}}}, Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}, FillArrays.Fill{NoReference, 1, Tuple{Base.OneTo{Int64}}}}(Comrade.AffineDesignMatrix{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{ComplexF64}}(sparse([1, 2, 3, 4, 5, 6, 9, 12, 15, 18 … 306, 307, 308, 309, 310, 311, 312, 313, 314, 315], [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 35, 36, 38, 38, 39, 41, 41, 42, 44, 44, 45, 47, 49, 49, 50, 52, 52, 53, 55, 55, 56, 58, 58, 59, 61, 61, 62, 64, 64, 65, 67, 67, 68, 70, 70, 70, 70, 71, 71, 71, 72, 72, 73, 75, 75, 75, 75, 76, 76, 76, 77, 77, 78, 80, 80, 80, 80, 81, 81, 81, 82, 82, 83, 85, 85, 85, 85, 86, 86, 86, 87, 87, 88, 90, 90, 90, 90, 91, 91, 91, 92, 92, 93, 95, 95, 95, 95, 96, 96, 96, 97, 97, 98, 100, 100, 100, 100, 101, 101, 101, 102, 102, 103, 105, 105, 105, 105, 106, 106, 106, 107, 107, 108, 110, 110, 110, 110, 111, 111, 111, 112, 112, 113, 115, 115, 115, 115, 116, 116, 116, 117, 117, 118, 120, 120, 120, 120, 121, 121, 121, 122, 122, 123, 125, 125, 125, 125, 126, 126, 126, 127, 127, 128, 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, 135, 135, 135, 136, 136, 137, 139, 141, 143, 145, 147, 149], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), ComplexF64[0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im, 1.0 + 0.0im, 0.0 + 0.0im, 1.0 + 0.0im … 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im, 0.0 + 0.0im]), sparse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10 … 307, 306, 308, 309, 310, 311, 312, 313, 314, 315], [2, 4, 6, 8, 10, 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37, 37, 38, 39, 39, 40, 40, 40, 41, 42, 42, 43, 43, 43, 44, 45, 45, 46, 46, 46, 47, 48, 48, 49, 50, 50, 51, 51, 51, 52, 53, 53, 54, 54, 54, 55, 56, 56, 57, 57, 57, 58, 59, 59, 60, 60, 60, 61, 62, 62, 63, 63, 63, 64, 65, 65, 66, 66, 66, 67, 68, 68, 69, 69, 69, 70, 71, 71, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 76, 76, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 86, 86, 87, 87, 87, 88, 88, 88, 88, 89, 89, 89, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 101, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 106, 106, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 109, 110, 111, 111, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, 116, 116, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 121, 121, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 126, 126, 127, 127, 127, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 131, 131, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 134, 136, 137, 137, 138, 138, 138, 140, 142, 144, 146, 148, 150], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 315, 150), (AA = FixedSeg{ComplexF64}(1.0 + 0.0im), AP = ScanSeg{false}(), AZ = ScanSeg{false}(), JC = ScanSeg{false}(), LM = ScanSeg{false}(), PV = ScanSeg{false}(), SM = ScanSeg{false}()), Comrade.GainSchema{Vector{Symbol}, Vector{Float64}, Vector{Tuple{Float64, Symbol}}}([:JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM … :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM, :JC, :SM], [0.0, 0.0, 0.3333333358168602, 0.3333333358168602, 0.6666666716337204, 0.6666666716337204, 1.0000000298023224, 1.0000000298023224, 1.3333333432674408, 1.3333333432674408 … 22.33333396911621, 22.33333396911621, 22.66666603088379, 22.66666603088379, 22.999999523162842, 22.999999523162842, 23.333333015441895, 23.333333015441895, 23.666666507720947, 23.666666507720947], [(0.0, :JC), (0.0, :SM), (0.3333333358168602, :JC), (0.3333333358168602, :SM), (0.6666666716337204, :JC), (0.6666666716337204, :SM), (1.0000000298023224, :JC), (1.0000000298023224, :SM), (1.3333333432674408, :JC), (1.3333333432674408, :SM) … (22.33333396911621, :JC), (22.33333396911621, :SM), (22.66666603088379, :JC), (22.66666603088379, :SM), (22.999999523162842, :JC), (22.999999523162842, :SM), (23.333333015441895, :JC), (23.333333015441895, :SM), (23.666666507720947, :JC), (23.666666507720947, :SM)]), Fill(NoReference(), 49))
)
)
)
), TransformVariables.TransformTuple{NamedTuple{(:c, :f, :p, :angparams, :dRx, :dRy, :dLx, :dLy, :lgp, :gpp, :lgr, :gpr), Tuple{VLBIImagePriors.ImageSimplex, TransformVariables.ScaledShiftedLogistic{Float64}, TransformVariables.ArrayTransformation{TransformVariables.ScaledShiftedLogistic{Float64}, 2}, TransformVariables.ArrayTransformation{VLBIImagePriors.SphericalUnitVector{2}, 2}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}, TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}, TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}}}}((c = VLBIImagePriors.ImageSimplex(36, (6, 6)), f = as(Real, 0.7, 1.2), p = TransformVariables.ArrayTransformation{TransformVariables.ScaledShiftedLogistic{Float64}, 2}(as(Real, 0.0, 1.0), (6, 6)), angparams = TransformVariables.ArrayTransformation{VLBIImagePriors.SphericalUnitVector{2}, 2}(VLBIImagePriors.SphericalUnitVector{2}(), (6, 6)), dRx = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (7,)), dRy = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (7,)), dLx = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (7,)), dLy = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (7,)), lgp = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (186,)), gpp = TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}(VLBIImagePriors.AngleTransform(), (150,)), lgr = TransformVariables.ArrayTransformation{TransformVariables.Identity, 1}(asℝ, (186,)), gpr = TransformVariables.ArrayTransformation{VLBIImagePriors.AngleTransform, 1}(VLBIImagePriors.AngleTransform(), (150,))), 1180))We can now also find the dimension of our posterior or the number of parameters we will sample.
This can often be different from what you would expect. This difference is especially true when using angular variables, where we often artificially increase the dimension of the parameter space to make sampling easier.
ndim = dimension(tpost)1180Now we optimize. Unlike other imaging examples, we move straight to gradient optimizers due to the higher dimension of the space.
using ComradeOptimization
using OptimizationOptimJL
using Zygote
f = OptimizationFunction(tpost, Optimization.AutoZygote())
ℓ = logdensityof(tpost)
prob = Optimization.OptimizationProblem(f, prior_sample(tpost), nothing)
sol = solve(prob, LBFGS(), maxiters=15_000, g_tol=1e-1);Fitting polarized images is generally much harder than Stokes I imaging. This difficulty means that optimization can take a long time, and starting from a good starting location is often required.
Before we analyze our solution, we need to transform it back to parameter space.
xopt = transform(tpost, sol)(c = [2.488804679061256e-6 2.155953578461372e-6 … 5.531325437590542e-6 1.2211979431391376e-6; 2.663526240633111e-5 0.08041185676004316 … 0.03524056412738644 3.080877965141601e-7; … ; 0.09032960412401632 0.2236867117254581 … 1.025212037039101e-5 2.865672662349125e-9; 1.5999339710576164e-5 2.7948041984391198e-6 … 8.73221100308801e-7 1.1410239994389053e-9], f = 0.7000411131994534, p = [0.00019954568390956787 0.9997496882291472 … 0.999839486573714 0.5790702186761886; 0.9996607153343546 0.999827704311519 … 0.9999999962680776 0.999999999978272; … ; 3.4671829839779327e-9 0.9999999970618543 … 0.00017321773437332927 0.000273186005545994; 0.9999999999999875 0.9998438451456146 … 1.3761360521069426e-7 0.9999298939795187], angparams = ([0.4023155885036369 0.37978683229892696 … 0.42157349820362294 -0.5609310964428215; -0.3807896774653289 -0.2529903758888035 … 0.09048391498155335 0.22627121737192285; … ; 0.5295802357938486 -0.06483301826158391 … -0.07615526657849782 0.4139268670164246; 0.4823302392815782 0.11071945559157581 … 0.4367152202648169 0.9430851022782107], [-0.46497403685283933 -0.9131194340566147 … 0.7526305602529195 -0.2776494452161681; -0.7220703480585783 -0.050228080461179006 … 0.06519955409570452 0.0666144458349602; … ; -0.3309281366269698 0.027199596810523488 … 0.5502378077140981 0.00849293632128753; 0.8674650455074168 -0.22564745303358688 … -0.8413975287410882 0.2504588101784921], [0.7886325584831928 0.14823920250889963 … -0.5057895069944971 0.7799147970224748; 0.5775929656690897 -0.9661640697318584 … -0.9937613794444481 0.9717838503469427; … ; 0.7810450321493206 0.9975253689387745 … -0.8315279492201937 -0.9102705195680072; -0.12190953653177011 -0.9678969103644047 … 0.3183237581730937 0.21877128299863968]), dRx = [-4.517480124686807, -5.16211183992603, 0.8672246437217771, -16.802141210218462, -5.4439646955329595, -0.4737757039609267, -9.45136944012296], dRy = [-3.226626818240376, 3.2854381086758666, -7.496576741623533, -12.112708472107318, -4.8406712804424945, -11.735012111031617, -3.281338612908129], dLx = [4.089787395980201, 2.101219614215547, 8.735896817439464, 5.748575482280384, -4.348594457853689, 15.120066891199167, -3.8919526064413064], dLy = [1.9021558537005043, 1.9326194242625685, 12.469001225338081, 16.078082937896554, -0.20200750527954983, 4.681104229453301, 3.0910241766061435], lgp = [-1.5692100819806525, -1.569206621139109, -1.5506750245913092, -1.5506763443506133, -1.5776052095857154, -1.5775929466620893, -1.5745091959381246, -1.5745092935102798, -1.5252530941373093, -1.525254413616868 … -1.5520321246699076, -1.5520348427490263, -1.528310495427712, -1.5283099031758778, -1.5244325696318644, -1.5244387202137093, -1.5144420325610253, -1.5144399928655494, -1.5367284288106904, -1.5367314913903893], gpp = [-1.7428836611844112, 1.0866087343429114, 0.459789185752068, 0.2192533985829307, 1.740066461818085, 0.41561749444699214, -0.35246161040342106, 1.090579793255222, 0.8982748427815652, 1.9596639354310292 … -2.5826705607815326, -2.3679119245075486, -2.596457503426582, 1.3784983670933122, 1.1021679744299269, 0.22373338768703943, 2.5890327543355696, 0.8828910408835029, 0.33863696331582643, -2.3344315800851474], lgr = [0.2888721259820555, 0.3795771155683957, 0.8978442493396382, -0.22856896040617425, 0.8957171672417648, -0.22875138500293357, 0.7623241188341963, -0.0805731698250613, 0.010093320161518628, 0.6724039728684396 … 0.22696393274234558, 0.48230019856927264, 0.12459773687785808, 0.5630034421779536, 0.12466089241037298, 0.5614551022075717, 0.25571839915754413, 0.4415134981656837, 0.18873719994542276, 0.5043885101486555], gpr = [1.8706871441103339, 1.506374930356603, -1.799218030959687, -2.101123058694674, -1.2466624360404723, -1.521902748649825, -1.3517523434090921, -1.1341995376535872, -2.7704061463064744, -2.133687254345037 … -3.0468661085098887, 2.382223378408768, -2.8256327201137275, 2.3801381435761026, -2.970546952097763, 2.337496476924616, -2.7305193459081147, 2.959559681935998, 2.778526058770458, 2.243133739086779])Now let's evaluate our fits by plotting the residuals
using Plots
residual(vlbimodel(post, xopt), dvis)These look reasonable, although there may be some minor overfitting. Let's compare our results to the ground truth values we know in this example. First, we will load the polarized truth
using AxisKeys
imgtrue = Comrade.load(joinpath(dirname(pathof(Comrade)), "..", "examples", "PolarizedExamples/polarized_gaussian.fits"), StokesIntensityMap)2-dimensional KeyedArray(NamedDimsArray(...)) with keys:
↓ X ∈ 1024-element LinRange{Float64,...}
→ Y ∈ 1024-element LinRange{Float64,...}
And data, 1024×1024 NamedDimsArray(StructArray(::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}, ::Matrix{Float64}), (:X, :Y)):
… (4.8434e-10)
(-4.8434e-10) [6.86545e-65, 4.08459e-78, 1.02982e-65, 1.02982e-66]
(-4.83393e-10) [8.99558e-65, 5.35191e-78, 1.34934e-65, 1.34934e-66]
(-4.82446e-10) [1.17804e-64, 7.00873e-78, 1.76706e-65, 1.76706e-66]
(-4.815e-10) [1.54192e-64, 9.17361e-78, 2.31287e-65, 2.31287e-66]
(-4.80553e-10) … [2.01712e-64, 1.20008e-77, 3.02568e-65, 3.02568e-66]
(-4.79606e-10) [2.63738e-64, 1.56911e-77, 3.95607e-65, 3.95607e-66]
⋮ ⋱
(4.78659e-10) [3.44655e-64, 2.05052e-77, 5.16983e-65, 5.16983e-66]
(4.79606e-10) [2.63738e-64, 1.56911e-77, 3.95607e-65, 3.95607e-66]
(4.80553e-10) … [2.01712e-64, 1.20008e-77, 3.02568e-65, 3.02568e-66]
(4.815e-10) [1.54192e-64, 9.17361e-78, 2.31287e-65, 2.31287e-66]
(4.82446e-10) [1.17804e-64, 7.00873e-78, 1.76706e-65, 1.76706e-66]
(4.83393e-10) [8.99558e-65, 5.35191e-78, 1.34934e-65, 1.34934e-66]
(4.8434e-10) [6.86545e-65, 4.08459e-78, 1.02982e-65, 1.02982e-66]Select a reasonable zoom in of the image.
imgtruesub = imgtrue(Interval(-fovx/2, fovx/2), Interval(-fovy/2, fovy/2))
img = intensitymap!(copy(imgtruesub), skymodel(post, xopt))
#Plotting the results gives
import WGLMakie as CM
fig = CM.Figure(;resolution=(450, 200));
polimage(fig[1,1], imgtruesub,
axis=(xreversed=true, aspect=1, title="Truth", limits=((-20.0,20.0), (-20.0, 20.0))),
length_norm=1, plot_total=true,
pcolorrange=(-0.25, 0.25), pcolormap=CM.Reverse(:jet))
polimage(fig[1,2], img,
axis=(xreversed=true, aspect=1, title="Recon.", limits=((-20.0,20.0), (-20.0, 20.0))),
length_norm=1, plot_total=true,
pcolorrange=(-0.25, 0.25), pcolormap=CM.Reverse(:jet))
CM.Colorbar(fig[1,3], colormap=CM.Reverse(:jet), colorrange=(-0.25, 0.25), label="Signed Polarization Fraction sign(V)*|p|")
CM.colgap!(fig.layout, 1)
fig